package yxm.zyf.love.CAS;

import java.util.ArrayList;

public class FanxingChachu {
//    public static void main(String[] args) throws Exception {
//
//        ArrayList<Integer> list = new ArrayList<Integer>();
//        //这样调用 add 方法只能存储整形，因为泛型类型的实例为 Integer
//        list.add(1);
//
//        /**在程序中定义了一个ArrayList泛型类型实例化为Integer对象，如果直接调用add()方法，那么只能存储整数数据，
//         不过当我们利用反射调用add()方法的时候，却可以存储字符串，这说明了Integer泛型实例在编译之后被擦除掉了，
//         只保留了原始类型。*/
//        list.getClass().getMethod("add", Object.class).invoke(list, "asd");
//
//        for (int i = 0; i < list.size(); i++) {
//            System.out.println(list.get(i));
//        }
//    }

//    public static void main(String[] args) {
//
//        ArrayList<String> list1 = new ArrayList();
//        list1.add("1");
//        //编译通过
//        list1.add(1);
//        //编译错误
//        String str1 = list1.get(0);
//        //返回类型就是String
//
//        ArrayList list2 = new ArrayList<String>();
//        list2.add("1");
//        //编译通过
//        list2.add(1);
//        //编译通过
//        Object object = list2.get(0);
//        //返回类型就是Object
//
//        new ArrayList<String>().add("11");
//        //编译通过
//        new ArrayList<String>().add(22);
//        //编译错误
//
//        String str2 = new ArrayList<String>().get(0);
//        //返回类型就是String
//    }

}
